package cn.topcode.unicorn.utils;

import java.math.BigDecimal;

/**
 * Created by Unicorn on 2018/2/12.
 */
public class MathUtil {

    /**
     * 浮点数减法，解决误差问题
     * @param a
     * @param b
     * @return
     */
    public static double sub(double a, double b) {
        BigDecimal decimalA = new BigDecimal(Double.toString(a));
        BigDecimal decimalB = new BigDecimal(Double.toString(b));
        return decimalA.subtract(decimalB).doubleValue();
    }

    /**
     * 浮点数加法，解决误差问题
     * @param a
     * @param b
     * @return
     */
    public static double add(double a, double b) {
        BigDecimal decimalA = new BigDecimal(Double.toString(a));
        BigDecimal decimalB = new BigDecimal(Double.toString(b));
        return decimalA.add(decimalB).doubleValue();
    }

    /**
     * 浮点数比较
     * @param a
     * @param b
     * @return 0：等于；1：大于；-1：小于
     */
    public static int compare(double a, double b) {
        BigDecimal decimalA = new BigDecimal(Double.toString(a));
        BigDecimal decimalB = new BigDecimal(Double.toString(b));
        return decimalA.compareTo(decimalB);
    }
}
